<?php
class ANotaDebitoProveedor
{
	public function __construct() {}
	public function actualizarCuentas(EFacade & $facade) 
	{
		
		//echo 'se entro';
		epLoadConfig('../config.xml');

		$m = epManager::instance();
		$doc = & $facade->getDocumentRoot();
	    $workflowNDC = & $facade->getWorkflow();
		$ezpdo_= getManager();
		$role=NULL;
		
		
		
		$network=$doc->workflowRef->networkRef;
		
		$query='FROM MConfiguracionCuenta as t WHERE t.documento.oid=?';
		$configuracion=$ezpdo_->find($query,$network->epGetObjectId());
		//$configuracion[0];
		
		$cuentas=$configuracion[0]->cuenta;
		
		
			foreach($cuentas as $c){
			
			if($c->posicion==1){
				$c->cuentaContable->aumenta(stringToNumber($doc->importeTotal),$doc);
				$c->cuentaContable->commit();
			}
			
			
			
		}
		$doc->importeTotal=stringToNumber($doc->importeTotal);
		$transaccionBancaria = $ezpdo_->create('MTransaccionBancaria');
		$transaccionBancaria->fechaTransaccion = date('U');//$doc->fechaCreacion; TOMA LA FECHA ACTUAL EN FORMATO UNIX.... carlos
		
		foreach($doc->formaPagoList as &$pagos){
			if($ctaBancaria = &$pagos->formaPago->cuentaBancaria){
				$ctaBancaria->saldo = $ctaBancaria->saldo + $pagos->montoPago;
				$transaccionBancaria->cuentaBancaria = $ctaBancaria;  
				$ctaBancaria->commit();
			}
			else{
				$ctacaja = &$pagos->formaPago->cuentaCaja;
				$ctacaja->saldo = $ctacaja->saldo + $pagos->montoPago;
				$ctacaja->commit();
			}
			 
		}
		
//		if($ctaBancaria = & $doc->facturaProveedor->formaPago->cuentaBancaria){
//			$ctaBancaria->saldo = $doc->importeTotal + $ctaBancaria->saldo;//DEBERÍA SER AL CONTRARIO.. VERIFICAR... CARLOS
//			$transaccionBancaria->cuentaBancaria = $ctaBancaria;  
//		}
//		else{
//			$ctaCaja = & $doc->facturaProveedor->formaPago->cuentaCaja;
//			$ctaCaja->saldo = $doc->importeTotal + $ctaCaja->saldo;//DEBERÍA SER AL CONTRARIO.. VERIFICAR... CARLOS
//		}
		
		$transaccionBancaria->commit();//echo '<br>CASI listo';
		
		//CARLOS, FALTA ACTUALIZAR LA CUENTA CONTABLE.....
		
//		$transaccionBancaria->commit();//echo '<br>CASI listo';
//		$ctaBancaria->commit();
//		//$workflowSA = & $facade->getWorkflow();
		
		$doc->epSetDirty(TRUE);// marcar el documento para que sea salvado los cambios en su lista de items
		$workflowNDC->epSetDirty(TRUE);
		$facade->saveWorkflow();			
		//echo '<hr>TTT',$doc,' ---- ',$ctaBancaria;
		
		$transSetSA = & EFacade :: getCurrentTransSetAuto($workflowNDC, 2); //TYPE AUTO AGENT
		$role=NULL;
		$transSA = $transSetSA->getTransByName('t2');
		$facade->fireTrans($transSA,$role,'actualizar cuentas', TRUE);
		//echo '<br>listo';
	}
}
?>